%-----------------------------------------------------------------------------
\chapter{Umsetzung}
%-----------------------------------------------------------------------------




\section{Gewählte Umsetzung}
%Haui so ein G'setzerl noch bei jedem Kapitel dazuschreiben.
Aufgrund der definierten Zielsetzung und der damit verbundenen Kriterien werden
folgende Technologien für die Umsetzung herangezogen.


\subsection{Java EE Applikationsserver}

STARTING FROM HERE YOUR TURN
\newline
\newline 
Um zu zeigen ob die in den je\-weil\-igen Java Specification Requests
be"-schrieb"-en"-en Funktionalitäten umsetzbar sind wurden die folgenden beiden
Java Enter"-prise Edition Applikationsserver verschiedener HerstellerInnen für




\subsubsection{GlassFish}
Da es sich bei diesem Applikationsserver um die
Referenzimplementierung 




\subsubsection{Oracle Weblogic}
Ein kommerzieller und nicht quelloffener Java Enterprise Edition
Applikations"-server der Firma Oracle Inc., welcher ebenfallsVersion 12.1.1.0 eingesetzt.






\subsection{Java Authentication Service Provider Interface for Containers}
Aufgrund der Tatsachen dass es 

\begin{itemize}
  \item [a)]
  die standardisierte Schnittstelle für das Einbinden von selbst erstellten
  Authentisierungsroutinen, sowie zur Zuweisung von Rechten zu BenutzerInnen,
  sowohl der Java Platform Standard Edition als auch der Enterprise Edition ist
  \item [b)]
  auf Mitteilungsebene arbeitet und es daher alle eingehenden
  Anfragen an, sowie ausgehende Antworten von Java EE Containern, bearbeiten
  sowie manipulieren kann
\end{itemize}
 wird diese Schnittstelle für die prototypenhafte Umsetzung verwendet.
 


\subsection{Java Authentication and Authorization Service}

Durch die von dieser Schnittstelle

\begin{itemize}
  \item [a)]
  zur Verfügung gestellten Möglichkeiten die Authentisierung von
  Benutzer"-Innen, sowie dem Zuweisen von Rechten zu ebendiesen über eine
  Kon\-fi\-gu\-ra\-ti\-ons\-datei austauschbar zu machen sowie
  \item [b)]
  der Tatsache dass die Programmierschnittstelle standardisiert ist 
\end{itemize}
werden die Geschäfts"-applikationen, welche diese Schnittstelle ver"-wenden,
un"-abhängig von 




\subsection{JavaServer Faces}
Da JavaServer Faces eine strikte Trennung zwischen Anwendungslogik und
Darstellung bieten 




\section{Alternative Umsetzungsmöglichkeiten}
Folgende alternative Umsetzungen sind möglich.


\subsection{Andere Java EE Applikationsserver}
Die beschriebene Funktionalität muß mit allen voll Java Enterprise Edition 6
kompatiblen Applikationsservern umsetzbar 



\subsection{Ausschließlich JASPIC}
JASPIC beinhaltet im Gegensatz zu JAAS selbst keine inhärenten
standardisierten Möglichkeiten Authentisierungs- sowie Rechtezuweisungsverfahren




\section{Nicht zielführende Umsetzungen}
Folgende Umsetzungen sind, aufgrund der definierten Zielsetzung, nicht
ziel"-füh"-rend.






\subsection{Ausschließlich JAAS}




\subsection{Java Authorization Contract for Containers}
Der Zweck dieser Schnittstelle besteht darin auf fein granulare und





%-----------------------------------------------------------------------------
\section{Ergebnisse der Umsetzung}
%-----------------------------------------------------------------------------
Aus der gewählten Umsetzung ergeben sich die folgenden wichtigen Ergebnisse und
Zwischenschritte.


\subsection{Übergreifende Strukturen}
Aufgrund der Java Enterprise Edition Spezifikation ergeben sich die folgenden
wichtigen übergreifenden Strukturen.



\subsubsection{Die Klasse Subject}
Die Klasse "`javax.security.auth.Subject"' fungiert  




\subsubsection{Das Interface Principal}
Instanzen von Klassen welche 


\subsection{JASPIC Spezifikation}
Die Umsetzung beinhaltet die folgenden die JASPIC Spezifikation betreffenden
wichtigen Eckpunkte.


\subsubsection{Das Interface ServerAuthModule}
Die Spezifikation definiert das Interface
"`javax.security.auth.message.module.Ser"-verAuthModule"' welches 


\subsubsection{Das Interface Callbackhandler}
Alle selbst erstellten Programmmodule können 




\subsubsection{Ablauf der Nachrichtenverarbeitung}
Bei der Verarbeitung von Nachrichten werden 


\begin{enumerate}
  
  \item initialize(\ldots)
  \newline
  Wird vom ausführenden Container 

  
  \item validateRequest(\ldots)
  \newline
  Wird vom ausführenden Container

  
  \item secureResponse(\ldots)
  \newline
  Wird vom aufrufenden Container 
  
  
\end{enumerate}







\subsection{JAAS Spezifikation}
Die Umsetzung beinhaltet die folgenden die JAAS Spezifikation betreffenden
wichtigen Eckpunkte.



\subsubsection{Das Interface LoginModule}
Die Spezifikation definiert



\subsubsection{Login Konfiguration}





\subsubsection{Die Klasse LoginContext}
Die Klasse "`javax.security.auth.login.LoginContext"' 


\begin{itemize}

  \item login()
  \newline
  Führt den Loginvorgang unter Verwendung der betreffenden Methoden, siehe
  "`Ablauf des Loginvorganges"', der jeweiligen Klassen aus. 
  
  \item logout()
  \newline
  Führt den Logoutvorgang unter Verwendung der betreffenden Methoden, siehe
  "`Logoutvorgang"', der jeweiligen Klassen aus.
  
  \item getSubject()
  \newline
  Gibt das Subject zurück.
  
\end{itemize} 













\subsection{Konfiguration und Installation}
Folgende Konfigurations- und Installationsschritte sind, neben der Installation
der JavaServer Faces HTML-Webanwendung für die angeführten Java Enterprise
Edition Ap\-pli\-ka\-ti\-ons\-server notwendig um die beschriebene
HTML-Webanwendung mit den beschriebenen Softwaremodulen zusammen auszuführen und
einzubinden.












